--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tests/backend/test_message_blocklist.py fa46dc4ce9ab50cbe66a7a9e4b3bca0140102345 (fa46dc4c) Text, 3.40 KB
T8b949e# SPDX-License-Identifier: 0BSD
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787message_blocklist Tff7b72import Tb4b4b4(
Te6edf3build_export_documentTb4b4b4,
Te6edf3first_matching_blocklist_entryTb4b4b4,
Te6edf3normalize_message_blocklistTb4b4b4,
Te6edf3parse_import_documentTb4b4b4,
Te6edf3parse_message_blocklist_jsonTb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8fftest_parse_empty_defaultsTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3out Tff7b72= Te6edf3parse_message_blocklist_jsonTb4b4b4(Tff7b72NoneTb4b4b4)
Tff7b72assert Te6edf3outTb4b4b4[Ta5d6ff"Ta5d6ffscopeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffnon_contactsTa5d6ff"
Tff7b72assert Te6edf3outTb4b4b4[Ta5d6ff"Ta5d6ffmatch_messageTa5d6ff"Tb4b4b4] Tff7b72is Tff7b72True
Tff7b72assert Te6edf3outTb4b4b4[Ta5d6ff"Ta5d6ffentriesTa5d6ff"Tb4b4b4] Tff7b72== Tb4b4b4[Tb4b4b4]
Tff7b72def Td2a8fftest_normalize_rejects_invalid_regexTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3raw Tff7b72= Tb4b4b4{
Ta5d6ff"Ta5d6ffentriesTa5d6ff"Tb4b4b4: Tb4b4b4[Tb4b4b4{Ta5d6ff"Ta5d6fftextTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ff[invalidTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffmatch_modeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffregexTa5d6ff"Tb4b4b4}Tb4b4b4]Tb4b4b4,
Tb4b4b4}
Te6edf3out Tff7b72= Te6edf3normalize_message_blocklistTb4b4b4(Te6edf3rawTb4b4b4)
Tff7b72assert Te6edf3outTb4b4b4[Ta5d6ff"Ta5d6ffentriesTa5d6ff"Tb4b4b4] Tff7b72== Tb4b4b4[Tb4b4b4]
Tff7b72def Td2a8fftest_substring_match_messageTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3blocklist Tff7b72= Te6edf3normalize_message_blocklistTb4b4b4(
Tb4b4b4{
Ta5d6ff"Ta5d6ffscopeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffeveryoneTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffmatch_messageTa5d6ff"Tb4b4b4: Tff7b72TrueTb4b4b4,
Ta5d6ff"Ta5d6ffmatch_peer_fieldsTa5d6ff"Tb4b4b4: Tff7b72FalseTb4b4b4,
Ta5d6ff"Ta5d6ffentriesTa5d6ff"Tb4b4b4: Tb4b4b4[Tb4b4b4{Ta5d6ff"Ta5d6fftextTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffbuy nowTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffmatch_modeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffsubstringTa5d6ff"Tb4b4b4}Tb4b4b4]Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Te6edf3m Tff7b72= Te6edf3first_matching_blocklist_entryTb4b4b4(
Te6edf3blocklistTb4b4b4,
Ta5d6ff"Ta5d6ffaliceTa5d6ff"Tb4b4b4,
Te6edf3is_contactTff7b72=Tff7b72FalseTb4b4b4,
Te6edf3message_haystackTff7b72=Ta5d6ff"Ta5d6ffclick BUY NOW hereTa5d6ff"Tb4b4b4,
Tb4b4b4)
Tff7b72assert Te6edf3m Tff7b72is Tff7b72not Tff7b72None
Tff7b72assert Te6edf3mTb4b4b4[Ta5d6ff"Ta5d6fftextTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffbuy nowTa5d6ff"
Tff7b72def Td2a8fftest_scope_non_contactsTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3blocklist Tff7b72= Te6edf3normalize_message_blocklistTb4b4b4(
Tb4b4b4{
Ta5d6ff"Ta5d6ffscopeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffnon_contactsTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffmatch_messageTa5d6ff"Tb4b4b4: Tff7b72TrueTb4b4b4,
Ta5d6ff"Ta5d6ffentriesTa5d6ff"Tb4b4b4: Tb4b4b4[Tb4b4b4{Ta5d6ff"Ta5d6fftextTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffspamTa5d6ff"Tb4b4b4}Tb4b4b4]Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72assert Tb4b4b4(
Te6edf3first_matching_blocklist_entryTb4b4b4(
Te6edf3blocklistTb4b4b4,
Ta5d6ff"Ta5d6ffpeerTa5d6ff"Tb4b4b4,
Te6edf3is_contactTff7b72=Tff7b72TrueTb4b4b4,
Te6edf3message_haystackTff7b72=Ta5d6ff"Ta5d6ffspam hereTa5d6ff"Tb4b4b4,
Tb4b4b4)
Tff7b72is Tff7b72None
Tb4b4b4)
Tff7b72assert Tb4b4b4(
Te6edf3first_matching_blocklist_entryTb4b4b4(
Te6edf3blocklistTb4b4b4,
Ta5d6ff"Ta5d6ffpeerTa5d6ff"Tb4b4b4,
Te6edf3is_contactTff7b72=Tff7b72FalseTb4b4b4,
Te6edf3message_haystackTff7b72=Ta5d6ff"Ta5d6ffspam hereTa5d6ff"Tb4b4b4,
Tb4b4b4)
Tff7b72is Tff7b72not Tff7b72None
Tb4b4b4)
Tff7b72def Td2a8fftest_regex_matchTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3blocklist Tff7b72= Te6edf3normalize_message_blocklistTb4b4b4(
Tb4b4b4{
Ta5d6ff"Ta5d6ffmatch_messageTa5d6ff"Tb4b4b4: Tff7b72TrueTb4b4b4,
Ta5d6ff"Ta5d6ffentriesTa5d6ff"Tb4b4b4: Tb4b4b4[Tb4b4b4{Ta5d6ff"Ta5d6fftextTa5d6ff"Tb4b4b4: Ta5d6ffrTa5d6ff"Ta5d6fffooTa5d6ff\Ta5d6ffd+Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffmatch_modeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffregexTa5d6ff"Tb4b4b4}Tb4b4b4]Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tff7b72assert Tb4b4b4(
Te6edf3first_matching_blocklist_entryTb4b4b4(
Te6edf3blocklistTb4b4b4,
Ta5d6ff"Ta5d6ffpeerTa5d6ff"Tb4b4b4,
Te6edf3message_haystackTff7b72=Ta5d6ff"Ta5d6ffhello foo99Ta5d6ff"Tb4b4b4,
Tb4b4b4)
Tff7b72is Tff7b72not Tff7b72None
Tb4b4b4)
Tff7b72assert Tb4b4b4(
Te6edf3first_matching_blocklist_entryTb4b4b4(
Te6edf3blocklistTb4b4b4,
Ta5d6ff"Ta5d6ffpeerTa5d6ff"Tb4b4b4,
Te6edf3message_haystackTff7b72=Ta5d6ff"Ta5d6ffhello barTa5d6ff"Tb4b4b4,
Tb4b4b4)
Tff7b72is Tff7b72None
Tb4b4b4)
Tff7b72def Td2a8fftest_export_and_import_roundtripTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3blocklist Tff7b72= Te6edf3normalize_message_blocklistTb4b4b4(
Tb4b4b4{
Ta5d6ff"Ta5d6ffscopeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffcontactsTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffmatch_peer_fieldsTa5d6ff"Tb4b4b4: Tff7b72TrueTb4b4b4,
Ta5d6ff"Ta5d6ffmatch_messageTa5d6ff"Tb4b4b4: Tff7b72FalseTb4b4b4,
Ta5d6ff"Ta5d6ffentriesTa5d6ff"Tb4b4b4: Tb4b4b4[Tb4b4b4{Ta5d6ff"Ta5d6fftextTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffviagraTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffmatch_modeTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffsubstringTa5d6ff"Tb4b4b4}Tb4b4b4]Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Te6edf3doc Tff7b72= Te6edf3build_export_documentTb4b4b4(Te6edf3blocklistTb4b4b4)
Te6edf3imported Tff7b72= Te6edf3parse_import_documentTb4b4b4(Te6edf3docTb4b4b4, Te6edf3mergeTff7b72=Tff7b72FalseTb4b4b4)
Tff7b72assert Te6edf3imported Tff7b72is Tff7b72not Tff7b72None
Tff7b72assert Te6edf3importedTb4b4b4[Ta5d6ff"Ta5d6ffscopeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffcontactsTa5d6ff"
Tff7b72assert Te6edf3importedTb4b4b4[Ta5d6ff"Ta5d6ffentriesTa5d6ff"Tb4b4b4]Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6fftextTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffviagraTa5d6ff"
Tff7b72def Td2a8fftest_import_merge_dedupesTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3existing Tff7b72= Te6edf3normalize_message_blocklistTb4b4b4(
Tb4b4b4{Ta5d6ff"Ta5d6ffentriesTa5d6ff"Tb4b4b4: Tb4b4b4[Tb4b4b4{Ta5d6ff"Ta5d6fftextTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffalphaTa5d6ff"Tb4b4b4}Tb4b4b4]Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Te6edf3doc Tff7b72= Te6edf3build_export_documentTb4b4b4(
Te6edf3normalize_message_blocklistTb4b4b4(Tb4b4b4{Ta5d6ff"Ta5d6ffentriesTa5d6ff"Tb4b4b4: Tb4b4b4[Tb4b4b4{Ta5d6ff"Ta5d6fftextTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffalphaTa5d6ff"Tb4b4b4}Tb4b4b4, Tb4b4b4{Ta5d6ff"Ta5d6fftextTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffbetaTa5d6ff"Tb4b4b4}Tb4b4b4]Tb4b4b4}Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Te6edf3merged Tff7b72= Te6edf3parse_import_documentTb4b4b4(Te6edf3docTb4b4b4, Te6edf3mergeTff7b72=Tff7b72TrueTb4b4b4, Te6edf3existingTff7b72=Te6edf3existingTb4b4b4)
Tff7b72assert Te6edf3merged Tff7b72is Tff7b72not Tff7b72None
Te6edf3texts Tff7b72= Tb4b4b4[Te6edf3eTb4b4b4[Ta5d6ff"Ta5d6fftextTa5d6ff"Tb4b4b4] Tff7b72for Te6edf3e Tff7b72in Te6edf3mergedTb4b4b4[Ta5d6ff"Ta5d6ffentriesTa5d6ff"Tb4b4b4]Tb4b4b4]
Tff7b72assert Te6edf3texts Tff7b72== Tb4b4b4[Ta5d6ff"Ta5d6ffalphaTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffbetaTa5d6ff"Tb4b4b4]
Tff7b72def Td2a8fftest_import_rejects_bad_schemaTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72assert Te6edf3parse_import_documentTb4b4b4(Tb4b4b4{Ta5d6ff"Ta5d6ffschemaTa5d6ff"Tb4b4b4: Ta5d6ff"Ta5d6ffotherTa5d6ff"Tb4b4b4}Tb4b4b4, Te6edf3mergeTff7b72=Tff7b72FalseTb4b4b4) Tff7b72is Tff7b72None
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────